/*
 * @Author: zhangweixin 
 * @Date: 2018-12-18 11:14:10 
 * @Last Modified by: zhangweixin
 * @Last Modified time: 2018-12-18 15:06:17
 */

 const path = require("path");
 var HtmlWebpackPlugin = require('html-webpack-plugin');
 
 module.exports = {
  entry:{
    app:path.join(__dirname,"src/index.js")
  },
  output:{
    path:path.join(__dirname,"dist"),
    filename:'[name].[hash].js'
  },
  module:{
    rules:[
      // {
      //   test:/\.js|jsx$/,
      //   use:[{
      //     loader:"babel-loader",
      //     options:{
      //       cacheDirectory: true,///*cacheDirectory是用来缓存编译结果，下次编译加速*/
      //     }
      //   }],
      //   include:path.join(__dirname,'src'),
      // },
      // babelrc 文件 plugins 不添加 "react-hot-loader/babel",
      // 否则 index.js && template.jsx 中，都要import 同样的包
      // 比如 style 模块化用到的
      // import style from './style.less';
      // import className from 'classnames/bind';
      // const classMap = className.bind(style);
      // 在ctrl +s 后，页面热模块替换后，提示页面classMap未定义
      {
        test:/\.js|jsx$/,
        use:[{
          loader:"babel-loader",
          // options:{
          //   cacheDirectory: true,///*cacheDirectory是用来缓存编译结果，下次编译加速*/
          // }
        }],
        include:path.join(__dirname,'src'),
      },
      {
        // npm install --save-dev url-loader file-loader
        test: /\.(png|jpg|gif)$/,
        use: [{
            loader: 'url-loader',
            options: {
                limit: 8192,
                // options limit 8192意思是，
                // 小于等于8K的图片会被转成base64编码，直接插入HTML中，减少HTTP请求。
            }
        }],
        include:[path.join(__dirname,'src'),path.join(__dirname,'static')],
      }
    ]
  },
  resolve:{
      alias:{
        components:path.join(__dirname,'src/components'),
        pages:path.join(__dirname,'src/pages'),
        router: path.join(__dirname, 'src/router'),
        actions: path.join(__dirname, 'src/actions'),
        constants: path.join(__dirname,'src/constants'),
        reducers: path.join(__dirname,'src/reducers'),
        utils:path.join(__dirname,'src/utils'),
        imgs:path.join(__dirname,'static/imgs'),
        style:path.join(__dirname,'static/style'),
    }
  },
  plugins:[
    new HtmlWebpackPlugin({
      filename:"index.html",
      template: path.join(__dirname,"index.html")
    }),
  ]
 }